import request from '@/utils/request'

// 获取试题列表
export function getTestQuestionsList(params) {
  return request({
    url: '/api/questions/paging',
    method: 'get',
    params,
  })
}

// 获取试题的详细信息
export function getQuestionDetail(id) {
  return request({
    url: `/api/questions/single/${id}`,
    method: 'get',
  })
}

/**
 * 添加试题
 * @param {Object} data - 试题数据
 * @param {number} data.id - 试题ID
 * @param {number} data.quType - 试题类型(1:单选题 2:多选题 3:判断题 4:简答题)
 * @param {string} data.image - 试题图片URL
 * @param {string} data.analysis - 试题解析
 * @param {string} data.content - 试题内容
 * @param {string} data.createTime - 创建时间
 * @param {number} data.repoId - 所属题库ID
 * @param {Array<Object>} data.options - 试题选项列表
 * @param {number} data.options[].id - 选项ID
 * @param {number} data.options[].quId - 所属试题ID
 * @param {number} data.options[].isRight - 是否正确答案(0:否 1:是)
 * @param {string} data.options[].image - 选项图片URL
 * @param {string} data.options[].content - 选项内容
 * @param {number} data.options[].sort - 选项排序
 * @param {number} data.options[].isDeleted - 是否删除(0:否 1:是)
 * @returns {Promise} 返回添加试题的请求Promise
 */
export function addQuestion(data) {
  return request({
    url: '/api/questions/single',
    method: 'post',
    data,
  })
}

/**
 * 更新试题信息
 * @param {number} id - 试题ID
 * @param {Object} data - 试题数据
 * @param {number} data.id - 试题ID
 * @param {number} data.quType - 试题类型(1:单选题 2:多选题 3:判断题 4:简答题)
 * @param {string} data.image - 试题图片URL
 * @param {string} data.analysis - 试题解析
 * @param {string} data.content - 试题内容
 * @param {string} data.createTime - 创建时间
 * @param {number} data.repoId - 所属题库ID
 * @param {Array<Object>} data.options - 试题选项列表
 * @param {number} data.options[].id - 选项ID
 * @param {number} data.options[].quId - 所属试题ID
 * @param {number} data.options[].isRight - 是否正确答案(0:否 1:是)
 * @param {string} data.options[].image - 选项图片URL
 * @param {string} data.options[].content - 选项内容
 * @param {number} data.options[].sort - 选项排序
 * @param {number} data.options[].isDeleted - 是否删除(0:否 1:是)
 * @returns {Promise} 返回更新试题的请求Promise
 */
export function updateQuestion(id, data) {
  return request({
    url: `/api/questions/${id}`,
    method: 'put',
    data,
  })
}

/**
 * 导入试题
 * @param {number} repoId - 题库ID
 * @param {FormData} formData - 包含Excel文件的FormData对象
 * @returns {Promise} 返回导入试题的请求Promise
 */
export function importQuestions(repoId, formData) {
  return request({
    url: `/api/questions/import/${repoId}`,
    method: 'post',
    data: formData,
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  })
}


